1. Field Of The Invention
The present invention relates to storage systems. More particularly, the invention relates to a method and system for managing storage systems containing multiple data storage devices.
2. Background
Conventional data storage systems include one or more storage devices connected to a controller or manager. As used herein, the term xe2x80x9cdata storage devicexe2x80x9d refers to any device or apparatus utilizable for the storage of data, e.g., a disk drive. For explanatory purposes only and not as an intent to limit the scope of the invention, the term xe2x80x9cdisk drivexe2x80x9d will be used throughout this document instead of the term xe2x80x9cdata storage device.xe2x80x9d
A logical volume manager (also called a logical disk manager) can be used to manage storage systems containing multiple disk drives. The logical volume manager configures a pool of disk drives into logical volumes (also called logical disks) so that applications and users interface with logical volumes instead of directly accessing physical disk drives. One advantage of using a logical volume manager is that a logical volume may span multiple physical disks, but is accessed transparently as if it were a single disk drive. These logical volumes appear to other components of the computer system as ordinary physical disk drives, but with performance and reliability characteristics that are different from underlying disk drives.
The logical volume manager divides physical disk drive into one or more partitions (also known as extents or subdisks). Each logical volume is composed of one or more partitions and each partition is typically defined by an offset and length. Because of the overhead inherent in managing multiple partitions, conventional systems normally have severe limitations on the number of partitions that can be formed on a physical disk drive. Due to the nature of the data structures and algorithms used by conventional volume managers, the maximum number of partitions or subdisks permitted to a logical volume in conventional systems is usually much less than 5000. In the simplest case, the disk manager forms a logical volume from a single partition. In more complex cases, the disk manager may form logical volumes by concatenating multiple partitions.
To protect against the loss of information, data on the system can be xe2x80x9cmirroredxe2x80x9d (i.e., duplicated and stored) on two or more separate storage locations. In this way, an additional copy of data is available for retrieval if the first copy cannot be accessed. However, conventional systems typically provide mirroring at relatively coarse granularity levels. For example, many systems provide mirroring at the granularity of the disk drive, i.e., entire disk drives are mirrored, even if it is desired to mirror only a portion of the data on the disk drive. By implementing mirroring on a disk drive basis, it is not normally possible to mix data with different redundancy requirements on the same disk drive. For example, parity protection can also be used to protect data. In many system, mirroring is more useful for heavily accessed data while parity protection is more useful for less frequently accessed data. In many conventional systems, administrative overhead makes it difficult to configure and protect some of the data with mirroring while protecting other data on the same disk drive with parity protection. Thus, the conventional method of implementing redundancy could create load imbalances.
Protection from disk drive failure can also be achieved by mirroring partitions or concatenations of partitions. Parity protection can also be maintained on a partition basis. To ensure that a disk drive failure does not result in lost data, all partitions in one concatenation should be on disk drives that are not used by other concatenations used for the same logical volume. This requires knowledge about all portions of a logical volume when allocating a new one. This is not a problem for a small number of partitions, but could be present a problem for a logical volume having a large number of partitions.
Conventional redundancy methods also do not adequately address the issue of multiple disk drive failures. If a system contains many logical volumes which spread redundancy data with small allocation granularity over many disk drives, then the chance of two disk drives failing which both contain redundant copies of a particular data item increases. As the partition size decreases, the chances of multiple drive failures that result in lost data increase, since there are more combinations of disk drives protecting redundant copies of the same data.
The foregoing problems of the conventional systems are farther exasperated by systems containing many disk drives (e.g., a thousand or more disk drives). This is due in large part to the amount of manual administration required in conventional systems. In conventional systems, the functions of configuring, addressing, and administering logical volumes and disk drives are normally performed manually by an administrator who must make choices as to the proper configuration to employ. When a large number of disk drives and/or logical volumes are used, this manual administration becomes more and more difficult. Thus, existing systems are prone to human error and their structures (administrative and data) do not scale well beyond a certain number of disk drives.
Thus, there is a need for a system and method to address the above described problems of the related art.
The invention is a system and method for managing a storage system having a plurality of data storage devices.
According to an embodiment of the invention, each disk drive is associated with a failure group. Two disk drives are in different failure groups if they do not share a common failure condition that is projected to affect both disk drives at the same time, e.g., they are not dependant upon a common piece of hardware which can fail without the entire system failing. Two disk drives are in the same failure group if they can both become inaccessible due to a single failure which the system should survive. For mirroring, each disk drive is paired with one or more disk drives from other failure groups. These symmetric pairs are called xe2x80x9cmirror partners.xe2x80x9d Pairs are formed so that every disk drive has mirror partners in as many different failure groups as possible. When a piece of a logical volume is allocated on a disk drive, the mirror copy of that piece is allocated on one of the disk drive""s mirror partners. The partner is chosen to evenly distribute the mirrored data to all partners. Two independent failures would be required to destroy both copies of the data.
Further details of aspects, objects, and advantages of the invention are described below in the detailed description, drawings, and claims.